//! 内核请求类型定义
//! 对应 C# 版本的内核请求类型

use serde::{Deserialize, Serialize};

/// 内核请求类型枚举
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum KernelRequest {
    /// 加载事物
    ThingLoad,
    /// 插入事物
    ThingInsert,
    /// 更新事物
    ThingUpdate,
    /// 删除事物
    ThingDelete,
    /// 加载集合
    CollectionLoad,
    /// 插入集合
    CollectionInsert,
    /// 更新集合
    CollectionUpdate,
    /// 删除集合
    CollectionDelete,
    /// 加载对象
    ObjectLoad,
    /// 插入对象
    ObjectInsert,
    /// 更新对象
    ObjectUpdate,
    /// 删除对象
    ObjectDelete,
    /// 加载存储桶
    BucketLoad,
    /// 插入存储桶
    BucketInsert,
    /// 更新存储桶
    BucketUpdate,
    /// 删除存储桶
    BucketDelete,
    /// 认证请求
    Auth,
    /// 其他自定义请求
    Custom(String),
}

impl Default for KernelRequest {
    fn default() -> Self {
        KernelRequest::ThingLoad
    }
}